{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-csv-export",
      "artifactVersion": "2025.27.34",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.admin.center",
          "org.nuxeo.binary.metadata",
          "org.nuxeo.directory.mongodb",
          "org.nuxeo.dmk-adaptor",
          "org.nuxeo.ecm.actions",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.jwt",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.audio.core",
          "org.nuxeo.ecm.platform.audit",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.content.template",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.csv.export",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.filemanager",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.mail",
          "org.nuxeo.ecm.platform.notification",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.oauth1",
          "org.nuxeo.ecm.platform.pdf",
          "org.nuxeo.ecm.platform.preview",
          "org.nuxeo.ecm.platform.publisher",
          "org.nuxeo.ecm.platform.query.api",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.search.core",
          "org.nuxeo.ecm.platform.suggestbox.core",
          "org.nuxeo.ecm.platform.tag",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.platform.types",
          "org.nuxeo.ecm.platform.url",
          "org.nuxeo.ecm.platform.usermanager",
          "org.nuxeo.ecm.platform.userworkspace",
          "org.nuxeo.ecm.quota",
          "org.nuxeo.importer.stream",
          "org.nuxeo.mail",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Platform Importer\n\n## About Nuxeo Platform Importer\n\nThe file importer comes as a Java library (with nuxeo runtime service) and a sample JAX-RS interface to launch, monitor and abort import jobs.\nThis project is an on-going project, supported by Nuxeo\n\n## Building\n### How to Build Nuxeo Platform Importer\nBuild the Nuxeo Platform Importer with Maven:\n```$ mvn install -Dmaven.test.skip=true```\n\n## Deploying\nNuxeo Platform Importer is available as two package add-ons [from the Nuxeo Marketplace]\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-platform-importer\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-scan-importer\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Platform Importer is available in our Documentation Center: http://doc.nuxeo.com/x/gYBVAQ\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Nuxeo Platform Importer component:\nhttps://jira.nuxeo.com/browse/NXP/component/10621\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "83bb2a4c6415c9f07db3ab17fa99510c",
            "encoding": "UTF-8",
            "length": 1753,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "2025.27"
      },
      "bundleId": "org.nuxeo.ecm.platform.csv.export",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.platform.csv.export.config/Contributions/org.nuxeo.ecm.platform.csv.export.config--actions",
              "id": "org.nuxeo.ecm.platform.csv.export.config--actions",
              "registrationOrder": 8,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "2025.27.34",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <action batchSize=\"50\" bucketSize=\"100\" defaultQueryLimit=\"100000\" defaultScroller=\"elastic\" httpEnabled=\"true\" inputStream=\"bulk/csvExport\" name=\"csvExport\" validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.CSVExportValidation\"/>\n    <action batchSize=\"50\" bucketSize=\"100\" defaultQueryLimit=\"100000\" defaultScroller=\"userManager\" httpEnabled=\"true\" inputStream=\"bulk/userCSVExport\" name=\"userCSVExport\" validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.UserCSVExportValidation\"/>\n    <action batchSize=\"50\" bucketSize=\"100\" defaultQueryLimit=\"100000\" defaultScroller=\"groupManager\" httpEnabled=\"true\" inputStream=\"bulk/groupCSVExport\" name=\"groupCSVExport\" validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.GroupCSVExportValidation\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scroll.service--scroll",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.platform.csv.export.config/Contributions/org.nuxeo.ecm.platform.csv.export.config--scroll",
              "id": "org.nuxeo.ecm.platform.csv.export.config--scroll",
              "registrationOrder": 6,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scroll.service",
                "name": "org.nuxeo.ecm.core.scroll.service",
                "type": "service"
              },
              "version": "2025.27.34",
              "xml": "<extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll class=\"org.nuxeo.ecm.platform.csv.export.scroll.UserManagerScroll\" name=\"userManager\" type=\"generic\"/>\n    <scroll class=\"org.nuxeo.ecm.platform.csv.export.scroll.GroupManagerScroll\" name=\"groupManager\" type=\"generic\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.platform.csv.export.config/Contributions/org.nuxeo.ecm.platform.csv.export.config--streamProcessor",
              "id": "org.nuxeo.ecm.platform.csv.export.config--streamProcessor",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "2025.27.34",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <!-- Blob assembly shared by every CSV export action. Declared once: a second processor declaring these global\n         streams fails with \"Tailer for this partition already created\". It also carries the bulk/makeBlob filter for\n         every action producing to that stream, since a filter chain is configured by a single processor. -->\n    <streamProcessor class=\"org.nuxeo.ecm.platform.csv.export.action.CSVExportBlobTopology\" defaultConcurrency=\"2\" defaultPartitions=\"4\" name=\"csvExportBlob\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n      <stream name=\"bulk/makeBlob\">\n        <filter class=\"org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter\" name=\"overflow\">\n          <option name=\"storeName\">default</option>\n          <option name=\"prefix\">csvoverflow</option>\n          <option name=\"thresholdSize\">966KiB</option>\n        </filter>\n      </stream>\n      <option name=\"produceImmediate\">true</option>\n    </streamProcessor>\n\n    <!-- CSV exporter processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.platform.csv.export.action.CSVExportAction\" defaultConcurrency=\"2\" defaultPartitions=\"4\" name=\"csvExport\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- user CSV exporter processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.platform.csv.export.action.UserCSVExportAction\" defaultConcurrency=\"2\" defaultPartitions=\"4\" name=\"userCSVExport\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- group CSV exporter processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.platform.csv.export.action.GroupCSVExportAction\" defaultConcurrency=\"2\" defaultPartitions=\"4\" name=\"groupCSVExport\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.platform.csv.export.config/Contributions/org.nuxeo.ecm.platform.csv.export.config--store",
              "id": "org.nuxeo.ecm.platform.csv.export.config--store",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "name": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "type": "service"
              },
              "version": "2025.27.34",
              "xml": "<extension point=\"store\" target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"csvExport\"/>\n    <store name=\"userCSVExport\"/>\n    <store name=\"groupCSVExport\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.platform.csv.export.config",
          "name": "org.nuxeo.ecm.platform.csv.export.config",
          "requirements": [
            "org.nuxeo.ecm.core.bulk",
            "org.nuxeo.ecm.core.scroll.service"
          ],
          "resolutionOrder": 296,
          "services": [],
          "startOrder": 264,
          "version": "2025.27.34",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.csv.export.config\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.bulk</require>\n  <require>org.nuxeo.ecm.core.scroll.service</require>\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <action name=\"csvExport\" inputStream=\"bulk/csvExport\" bucketSize=\"100\" batchSize=\"50\" httpEnabled=\"true\"\n      defaultScroller=\"${nuxeo.core.bulk.csvExport.scroller:=default}\"\n      defaultQueryLimit=\"${nuxeo.core.bulk.csvExport.queryLimit:=100000}\"\n      validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.CSVExportValidation\" />\n    <action name=\"userCSVExport\" inputStream=\"bulk/userCSVExport\" bucketSize=\"100\" batchSize=\"50\" httpEnabled=\"true\"\n      defaultScroller=\"userManager\"\n      defaultQueryLimit=\"${nuxeo.core.bulk.userCSVExport.queryLimit:=100000}\"\n      validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.UserCSVExportValidation\" />\n    <action name=\"groupCSVExport\" inputStream=\"bulk/groupCSVExport\" bucketSize=\"100\" batchSize=\"50\" httpEnabled=\"true\"\n      defaultScroller=\"groupManager\"\n      defaultQueryLimit=\"${nuxeo.core.bulk.groupCSVExport.queryLimit:=100000}\"\n      validationClass=\"org.nuxeo.ecm.platform.csv.export.validation.GroupCSVExportValidation\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.scroll.service\" point=\"scroll\">\n    <scroll type=\"generic\" name=\"userManager\" class=\"org.nuxeo.ecm.platform.csv.export.scroll.UserManagerScroll\" />\n    <scroll type=\"generic\" name=\"groupManager\" class=\"org.nuxeo.ecm.platform.csv.export.scroll.GroupManagerScroll\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <!-- Blob assembly shared by every CSV export action. Declared once: a second processor declaring these global\n         streams fails with \"Tailer for this partition already created\". It also carries the bulk/makeBlob filter for\n         every action producing to that stream, since a filter chain is configured by a single processor. -->\n    <streamProcessor name=\"csvExportBlob\" class=\"org.nuxeo.ecm.platform.csv.export.action.CSVExportBlobTopology\"\n      defaultConcurrency=\"${nuxeo.bulk.action.csvExportBlob.defaultConcurrency:=2}\"\n      defaultPartitions=\"${nuxeo.bulk.action.csvExportBlob.defaultPartitions:=4}\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n      <stream name=\"bulk/makeBlob\">\n        <filter name=\"overflow\" class=\"org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter\">\n          <option name=\"storeName\">default</option>\n          <option name=\"prefix\">csvoverflow</option>\n          <option name=\"thresholdSize\">966KiB</option>\n        </filter>\n      </stream>\n      <option name=\"produceImmediate\">${nuxeo.bulk.action.csvExportBlob.produceImmediate:=true}</option>\n    </streamProcessor>\n\n    <!-- CSV exporter processor -->\n    <streamProcessor name=\"csvExport\" class=\"org.nuxeo.ecm.platform.csv.export.action.CSVExportAction\"\n      defaultConcurrency=\"${nuxeo.bulk.action.csvExport.defaultConcurrency:=2}\"\n      defaultPartitions=\"${nuxeo.bulk.action.csvExport.defaultPartitions:=4}\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n    </streamProcessor>\n\n    <!-- user CSV exporter processor -->\n    <streamProcessor name=\"userCSVExport\" class=\"org.nuxeo.ecm.platform.csv.export.action.UserCSVExportAction\"\n      defaultConcurrency=\"${nuxeo.bulk.action.userCSVExport.defaultConcurrency:=2}\"\n      defaultPartitions=\"${nuxeo.bulk.action.userCSVExport.defaultPartitions:=4}\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n    </streamProcessor>\n\n    <!-- group CSV exporter processor -->\n    <streamProcessor name=\"groupCSVExport\" class=\"org.nuxeo.ecm.platform.csv.export.action.GroupCSVExportAction\"\n      defaultConcurrency=\"${nuxeo.bulk.action.groupCSVExport.defaultConcurrency:=2}\"\n      defaultPartitions=\"${nuxeo.bulk.action.groupCSVExport.defaultPartitions:=4}\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n    </streamProcessor>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\" point=\"store\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"csvExport\" />\n    <store name=\"userCSVExport\" />\n    <store name=\"groupCSVExport\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/csv-export-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO CSV registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO CSV registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers/Contributions/org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers--marshallers",
              "id": "org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers--marshallers",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2025.27.34",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentModelListCSVWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentModelCSVWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentPropertyCSVWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DirectoryEntryListCSVWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DirectoryEntryCSVWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export/org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers",
          "name": "org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers",
          "requirements": [],
          "resolutionOrder": 297,
          "services": [],
          "startOrder": 126,
          "version": "2025.27.34",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.io.MarshallerRegistry.csv.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO CSV registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentModelListCSVWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentModelCSVWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DocumentPropertyCSVWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DirectoryEntryListCSVWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.csv.export.io.DirectoryEntryCSVWriter\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-csv-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-csv-export-2025.27.34.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.csv.export",
      "id": "org.nuxeo.ecm.platform.csv.export",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nCreated-By: Maven JAR Plugin 3.5.1\r\nJava-Version: 21\r\nBuild-Jdk-Spec: 21\r\nBundle-ManifestVersion: 1\r\nBundle-Name: Nuxeo Core Bulk\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.csv.export;singleton:=true\r\nBundle-Version: 1.0.0\r\nNuxeo-Component: OSGI-INF/csv-export-config.xml,OSGI-INF/marshallers-csv\r\n -contrib.xml\r\n\r\n",
      "maxResolutionOrder": 297,
      "minResolutionOrder": 296,
      "packages": [],
      "requirements": [],
      "version": "2025.27.34"
    }
  ],
  "creationDate": 1793873591050,
  "key": "Nuxeo Platform-2025.27",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1793873591050,
  "version": "2025.27"
}